package com.tencent.face.service;

import com.tencent.face.param.*;
import com.tencentcloudapi.faceid.v20180301.models.GetActionSequenceResponse;
import com.tencentcloudapi.faceid.v20180301.models.GetLiveCodeResponse;
import com.tencentcloudapi.faceid.v20180301.models.LivenessCompareResponse;
import com.tencentcloudapi.iai.v20200303.models.*;

public interface TencentApiService {

    /**
     * 创建人员库
     * @return
     */
    CreateGroupResponse createGroup(GroupParam groupParam);

    /**
     * 删除人员库
     * @return
     */
    DeleteGroupResponse deleteGroup(String groupId);

    /**
     * 获取人员库信息
     * @return
     */
    GetGroupInfoResponse getGroupInfo(String groupId);

    /**
     * 修改人员库
     * @return
     */
    ModifyGroupResponse modifyGroup(ModifyGroupRequest groupInfoRequest);

    /**
     * 创建人员
     * @param personParam
     * @return
     */
    CreatePersonResponse createPerson(PersonParam personParam);

    /**
     * 删除人员 (所有人员库删除)
     * @return
     */
    DeletePersonResponse deletePerson(String id);

    /**
     * 根据库删除人员
     * @param groupId 库ID
     * @param personId 人员Id
     * @return
     */
    DeletePersonFromGroupResponse deletePersonFromGroup(String groupId,String personId);

    /**
     * 增加人脸
     * @param param
     * @return
     */
    CreateFaceResponse createFace(CreateFaceParam param);

    /**
     * 删除人脸
     * @param
     * @return
     */
    DeleteFaceResponse deleteFace(DeleteFaceRequest request);

    /**
     * 人员验证
     * @param personParam
     * @return
     */
    VerifyPersonResponse verifyPerson(VerifyPersonParam personParam);

    /**
     * 获取数字验证码
     * @return
     */
    GetLiveCodeResponse getLiveCode();

    /**
     *静态活体识别
     */
    DetectLiveFaceResponse detectLiveFace(DetectLiveFaceRequest request);

    /**
     *人脸搜索
     * @param req
     * @return
     */
    SearchFacesResponse searchFaces(SearchFacesRequest req);

    /**
     * 获取动作顺序
     * @return
     */
    GetActionSequenceResponse getActionSequence();

    /**
     * 活体人脸比对
     * @param req
     * @return
     */
    LivenessCompareResponse livenessCompare(LivenessCompareParam req);



}
